package com.gamefx.engine1.vo
{
	import com.gamefx.engine1.GameEngine;
	import com.gamefx.engine1.consts.ActionConst;
	import com.gamefx.engine1.consts.DirectionConst;
	
	import flash.utils.Dictionary;

	/**
	 *
	 * 基础游戏对象
	 *
	 * @author hzf
	 */
	public class VGameObject extends VObject
	{

		/**
		 * 模型（用于兼容，防止英雄、坐骑、宠物等的id重复导致错误）
		 */
		public var model:uint;
		
		/**
		 * 昵称
		 */
		public var nickname:String = "";

		/**
		 * 装备哈希表，键为预定义的EquipID，值为装备（物品或图元）ID
		 */
		public var equips:Dictionary;

		/**
		 * 所拥有的动作列表，键为预定义的ActionID，值为VAction
		 */
		public var actions:Dictionary;

		/**
		 * 高度
		 */
		public var width:Number;

		/**
		 * 宽度
		 */
		public var height:Number;

		/**
		 * 非透明图像区域的底部（头顶，在显示标题及状态图标时会用到此参数）
		 */
		public var equipsTop:Number;

		/**
		 * 非透明图像区域的底部（足底）
		 */
		public var equipsBottom:Number;

		/**
		 * X坐标
		 */
		public var x:Number;

		/**
		 * Y坐标
		 */
		public var y:Number;

		/**
		 * 当前朝向
		 */
		public var direction:uint = DirectionConst.E;
		
		
		/**
		 * 
		 * 
		 */
		public function VGameObject(data:Object = null)
		{
			super(data);
			
			if (equips == null)
			{
				equips = new Dictionary();
			}
			
			if (actions == null)
			{
				actions = new Dictionary();
				actions[ActionConst.ACTION_STATIC] = GameEngine.actionMap[ActionConst.ACTION_STATIC];
				actions[ActionConst.ACTION_MOTION] = GameEngine.actionMap[ActionConst.ACTION_MOTION];
			}
		}
	}
}